'''
辗转相除法求最大公约数和最小公倍数

最大公约数：
    1.大的是被除数，小的是除数
    2.求两数的余数
    3.除数作为下一次的被除数，余数作为下一次的除数
    4.直到余数为0，此时的除数就是最大公约数
最小公倍数：
    1.两数乘积除以最大公约数就是两数的最小公倍数


'''
n = int(input())
m = int(input())
beichushu = max(n,m) #大的作为被除数
chushu = min(n,m) #小的作为除数

while True:
    yushu  = beichushu%chushu
    if yushu==0:
        break
    beichushu = chushu
    chushu = yushu

print('最大公约数是',chushu)
print('最小公倍数是',n*m/chushu)